package com.yoda.mall.model.vo;

import com.yoda.common.Status;
import lombok.Data;

import java.io.Serializable;

/**
 * @author shawn
 * @date 2022年 12月 15日 22:19
 */
@Data
public class R<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer code;
    private T data;
    private String message;

    public static R<String> error(String message,Integer code){
        R<String> r = new R<>();
        r.setCode(code);
        r.setMessage(message);
        r.setData(message);
        return r;
    }

    public static <T>R<T> success(T data){
        R<T> r = new R<>();
        r.setCode(Status.OK.getCode());
        if (data instanceof String){
            r.setMessage((String) data);
        }
        r.setData(data);
        return r;
    }
    public static R<String> success(){
        R<String> r = new R<>();
        r.setCode(Status.OK.getCode());
        r.setData("操作成功");
        r.setMessage("操作成功");
        return r;
    }

    public static <T>R<T> success(T data,Integer code){
        R<T> r = new R<>();
        r.setCode(code);
        if (data instanceof String){
            r.setMessage((String) data);
        }
        r.setData(data);
        return r;
    }
}
